home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / extmath.zip / EXTSUB.S < prev    next >
Text File  |  1993-01-05  |  847b  |  43 lines

  1. ; Subtract source from dest (both 64-bit numbers)
  2. ;
  3. ; Tim Victor, January 5, 1993
  4. ;
  5. ; Callable from C as follows:
  6. ; int ExtSub(src, dest);
  7. ;   always return 0
  8. ;
  9.         .model  small
  10.         .code
  11.         public _ExtSub
  12. _ExtSub proc near
  13.  
  14.         push bp         ; save caller's stack frame
  15.         mov  bp,sp      ; address stack frame of this call
  16.         push si
  17.         push di
  18.  
  19. ; just subtract four pairs of words
  20.         mov  si,[bp+4]  ; source address
  21.         mov  di,[bp+6]  ; dest address
  22.  
  23.         mov  ax,[si]
  24.         sub  [di],ax
  25.         mov  ax,[si+2]
  26.         sbb  [di+2],ax
  27.         mov  ax,[si+4]
  28.         sbb  [di+4],ax
  29.         mov  ax,[si+4]
  30.         sbb  [di+4],ax
  31.  
  32.         sub  ax,ax      ; return 0
  33.  
  34.         pop  di
  35.         pop  si
  36.         pop  bp
  37.  
  38.         ret
  39.  
  40. _ExtSub endp
  41.         end
  42.  
  43.